package com.bt.springboot.demo.algorithm.leetcode;

import java.util.Arrays;

/**
 * @author zkx
 * @Date 2021/7/13 17:25
 */
public class Topic04 {
    public static void main(String[] args) {
        Topic04 topic04 = new Topic04();
        int[] nums1 = {1,3};
        int[] nums2 = {2};
        System.out.println(topic04.findMedianSortedArrays(nums1, nums2));
    }

    public double findMedianSortedArrays(int[] nums1, int[] nums2) {

        // 1.创建新数组长度为nums1和nums2长度之和
        int[] nums3 = new int[nums1.length + nums2.length];
        // 2.将两个数组元素拷贝到nums3中
        System.arraycopy(nums1, 0, nums3, 0, nums1.length);
        System.arraycopy(nums2, 0, nums3, nums1.length, nums2.length);

        // num3长度为1，直接返回
        if(nums3.length == 1){
            return nums3[0];
        }

        Arrays.sort(nums3);
        int middle = (nums3.length - 1) / 2;
        double median = (nums3[middle] + nums3[middle + 1]) / 2.0;

        // 长度为奇数，直接返回中间的数
        if(nums3.length % 2 != 0){
            return nums3[middle];
        }

        return median;
    }
}
